package com.company.servicename.util;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.UUID;

import org.springframework.util.CollectionUtils;

/**
 * @author fangsong.zhang
 * @date 2019/9/27 10:43
 * Copyright zfs
 * 类说明:通用工具类
 */
public class CommonUtil {
    private CommonUtil() {
    }

    /**
     * 分割列表
     *
     * @param list      待分割列表
     * @param sliceSize 每片大小
     * @param <T>       分割列表内含对象
     * @return 分割后的列表
     */
    public static <T> List<List<T>> splitList(List<T> list, int sliceSize) {
        if (CollectionUtils.isEmpty(list) || list.size() < 1 || sliceSize < 1) {
            return null;
        }
        int i = 0, initSlice = list.size() / sliceSize, slice = list.size() % sliceSize == 0 ? initSlice : initSlice + 1;
        if (initSlice < 1) {
            return new ArrayList<List<T>>() {{
                add(list);
            }};
        }
        List<List<T>> lists = new ArrayList<>(slice);
        while (i < slice - 1) {
            lists.add(list.subList(i * sliceSize, ++i * sliceSize));
        }
        lists.add(list.subList(i * sliceSize, list.size()));
        return lists;
    }

    /**
     * 判断集合是否有元素
     *
     * @param collection 集合
     * @param <T>        元素泛型
     * @return 判断结果
     */
    public static <T> boolean isBlack(Collection<T> collection) {
        return CollectionUtils.isEmpty(collection) || collection.size() < 1;
    }

    /**
     * 生成UUID
     *
     * @return uuid
     */
    public static String uuid() {
        return UUID.randomUUID().toString().replaceAll("-", "");
    }
}
